import java.util.List;
import java.util.Map;
/**
 * Provides access to games and teams from the database.
 */
public interface GameService {    
    /**
     * Get all available games.
     * @return List of games
     */
    List<Game> getGames();
    
    /**
     * Get all teams that are registered in the databse.
     * @return List of teams
     */
    List<Team> getTeams();
    
    /**
     * Store a bet in the database
     * @param bet 
     */
    void placeBet(Bet bet);
    
    /**
     * Get bets of a user
     * @param user User to get bets for.
     */
    List<Bet> getBets(User user);
    
    /**
     * Get a highscore map. 
     * @return A highscore map where the key is the name of the user and
     * the value his points.
     */
    Map<String, Integer> getHighscore();
}
